Network call-back data capture method and apparatus

ABSTRACT

A method for operating a telecommunications system comprises receiving over a computer network, a plurality of data packets from a first telecommunications system, in a second telecommunications system, determining a telephone number in response to a first set data packets from the plurality of data packets, determining computer network call-back data in response to a second set of data packets from the plurality of data packets, determining message data in response to a third set of data packets from the plurality of data packets, and storing the message data and the computer network call-back data in the second telecommunications system, the message data and the computer network call-back data associated with the telephone number.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present invention disclosure claims priority to U.S. PatentApplication No. 60/158,987, filed Oct. 12, 1999, and U.S. PatentApplication No. 60/139,342, filed Jun. 15, 1999. These applications areherein by incorporated by reference for all purposes. U.S. patentapplication Ser. No. 08/818,390, Filed Mar. 14, 1997, also incorporatedby reference for all purposes.

BACKGROUND OF THE INVENTION

The present invention relates to computer telephony. More specifically,the present invention relates to computer network-basedtelecommunication systems and servers.

Offices today share many modem conveniences, such as fax machines,electronic mail, commonly known as e-mail, high-powered computers, voicemail, and the like. Offices also share many of the same inconveniences,such as jammed copy machines, broken computers, and even disheveledpiles of paper having scribbled telephone numbers. Often, just who thetelephone number actually calls has long been forgotten, but typicallythe scraps are not thrown away, “just in case” the numbers are stillneeded.

These scraps of papers are commonly a byproduct of voice mail systems.In particular, when users retrieve their voice mail messages, the callerleaves a message and a number they can be reached at, also known as acall-back number. So the user can return the call, she typicallyscribbles the call-back number on an envelope, an unrelated piece ofpaper, a sticky pad, and the like. Later, when convenient, the user canreturn the caller's call. As noted above, when the user has a greatnumber of messages to return, these scraps of paper can get shuffledaround and even lost. As a result, the user may not be able to returnthe message. Even if the user can find the number, she must dial it overand over, if there is no answer.

One of the recent solutions to reduce the need for voice mail users towrite down call-back numbers left in their mail boxes has been use ofuser or caller call-back technology. One of the pioneering companies inthe area of call-back technology has been AltiGen Communications, theassignee of the present invention. With call-back functionality, thecaller is prompted to enter her call-back number by way of pressing keyson her telephone keypad, which in turn generates well known DTMF tones.These DTMF tones are then recorded into the voice mail system. Laterwhen the owner of the mail box reviews the message, she can direct thevoice mail system to dial the same DTMF tones to return the caller'smessage.

Drawbacks to having callers leave call-back telephone numbers includethat it required the caller to enter their call-back telephone number ina manner different from the way the caller would leave a message. Forexample, the caller would leave a voice message, and then enter acall-back telephone number with a numeric keypad. This way of providingcall-back service was potentially dangerous for the caller, for example,if the caller were driving on crowded expressway. In such a case, thecaller would have to first fumble for the telephone, take her eyes offtraffic to make sure the phone was in the proper position, and whilelooking at the telephone keypad press a series of keys.

In a concept pioneered by AltiGen communications, principles of computertelephony are now being adapted for telecommunications systems utilizingcomputer networks for transmission of data. However, the concept of acall-back telephone numbers applied to computer network-based calls hasnot heretofore been envisioned or implemented. Potential obstaclesbecome apparent when attempting to apply telephone number call-backcapture techniques to computer network-based communications. Forexample, potential drawbacks include that users' typically have no ideawhat their computer network address are, e.g. IP address, DNS addresses,and the like; or even how to specify computer-network call-back datacharacters with just a telephone keypad; and the like. Other suchdrawbacks can be envisioned.

Thus, in light of the above, what is needed in the industry are methodsand apparatus for providing computer-network call-back data for computernetwork-based telephony.

SUMMARY OF THE INVENTION

The present invention relates to methods and apparatus for improvedtelephone messaging. In particular, the present invention relates tocapturing computer network call-back data using novel methods andapparatus.

According to an embodiment of the present invention, a method foroperating a telecommunications system includes receiving over a computernetwork, a plurality of data packets from a first telecommunicationssystem, in a second telecommunications system. The method also includesdetermining a telephone number in response to a first set data packetsfrom the plurality of data packets, determining computer networkcall-back data in response to a second set of data packets from theplurality of data packets, and determining message data in response to athird set of data packets from the plurality of data packets. Storingthe message data and the computer network call-back data in the secondtelecommunications system, the message data and the computer networkcall-back data associated with the telephone number is also included.

According to another embodiment, a computer program product foroperating a telecommunications server including a processor includesexecutable code that directs the processor to store a plurality of datapackets from a first telecommunications system, over a computer network,in a memory, executable code that directs the processor to determine atelephone number in response to a first set data packets from theplurality of data packets, and executable code that directs theprocessor to determine a network call-back data in response to a secondset of data packets from the plurality of data packets. Code thatdirects the processor to store the network call-back data, the networkcall-back data associated with the telephone number is also included.The codes reside on a tangible media.

According to yet another embodiment, a telecommunications systemincludes a processor and a processor readable memory. The processorreadable memory includes code configured to direct the processor tostore a plurality of data packets from a calling telecommunicationssystem, in a memory, code configured to direct the processor todetermine a destination identifier in response to a first set datapackets from the plurality of data packets, and code configured to thatdirect the processor to determine call-back data in response to a secondset of data packets from the plurality of data packets. The processorreadable memory also includes code configured to direct the processor toassociate the call-back data associated with the destination identifier.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to more fully understand the present invention, reference ismade to the accompanying drawings. Understanding that these drawings arenot to be considered limitations in the scope of the invention, thepresently preferred embodiments and the presently understood best modeof the invention are described with additional detail through use of theaccompanying drawings in which:

FIG. 1 is an overview block diagram of an embodiment of the presentinvention;

FIG. 2 is a block diagram of an embodiment of the present invention;

FIG. 3 is a more detailed block diagram of a portion of an embodiment ofthe present invention;

FIGS. 4A-4C illustrate flow diagrams of an embodiment of the presentinvention; and

FIGS. 5A-5C illustrate flow diagrams of another embodiment of thepresent invention.

DESCRIPTION OF SPECIFIC EMBODIMENTS

FIG. 1 is an overview block diagram of an embodiment of the presentinvention. FIG. 1 illustrates a telecommunications system 2 and atelecommunications system 4, coupled via a network 6.

Each telecommunications system or server typically provides conventionaltelephone service to a plurality of respective telephones 8. Further,each telecommunications system also provides telephone service across acomputer network, for example wide area networks, including theInternet, internal intranets, local area networks, packetized networksand the like. Further description of these capabilities will be givenbelow. Further disclosure can be found in: U.S. patent application Ser.No. 08/818,390, entitled Mixed-Media Communication Apparatus and Method,filed Mar. 14, 1997, and assigned to the present assignee. Thisapplication is hereinby incorporated by reference for all purposes.

In the present embodiment, a caller coupled to telecommunications system2 typically picks-up the telephone handset, and dials a desiredtelephone number. When the telephone number is an internal extension,telecommunications system 2 couples the call to the other extension; andwhen the telephone number is an outside telephone number,telecommunications system 2 typically couples the call to the telephonetrunk line.

When the user dials specific telephone numbers, telecommunicationssystem 2 may determine that the most efficient method for making thetelephone call is through network 6. In response, telecommunicationssystem 2 formats the telephone call request, and sends the data totelecommunications system 4. When telecommunications system 4 receivesthe telephone call request, telecommunications system 4 determines thetelephone number, and then rings that telephone. The telephone call maybe for an internal extension or for an outside telephone. When thetelephone is answered, the caller and the receiver can then communicate.

In the present embodiment, as the caller or the receiver communicate,the analog data, typically their voices, are digitized and fragmentedinto packets of data by the respective telecommunications systems. Thesepackets of data are then passed to the other telecommunications systemvia computer network 6. The other telecommunications system re-assemblesthe data packets and converts them back into analog form.

When making a network telephone call, telecommunications systemstypically use a combination of network protocols to help ensure thearrival of data across the network. For example, in the presentembodiment, transmission control protocol (TCP) is used. In alternativeembodiments of the present invention, other control protocols, and othercombinations of control protocols may be used, for example: TCP, IP, UDPand the like.

FIG. 2 is a block diagram of a telecommunications system 20 according toa preferred embodiment of the present invention. Telecommunicationssystem 20 includes a monitor 30, a computer 40, a keyboard 50, an inputdevice 60, and a telecommunications server 70. Computer 40 includesfamiliar computer components such as a processor 90, and memory storagedevices, such as a random access memory (RAM) 100, a disk drive 110, anda system bus 80 interconnecting the above components. A telephone trunkline 120 and individual telephone lines 130 are coupled totelecommunications server 70. Handsets 140, (also telephones ortelephone handsets) may be coupled to individual telephone lines 130.

Handsets 140 are preferably analog signal telephone handsets, howeveralternatively they may be any well known type of digital or analogtelephone handset. A mouse is but one example of an input device 60,also known as a pointing device. Other types of input devices mayinclude trackballs, drawing tablets, microphones (for voice activatedinput), and the like. Telecommunications system 20 may be coupled to acomputer network 150 through use of a network interface 160 such as anEthernet card, a modem, and the like.

RAM 100 and disk drive 110 are examples of tangible media for storage ofdata, message files, computer programs, drivers for thetelecommunications server, embodiments of the herein described methods,and the like. Other types of tangible media include floppy disks,removable hard disks, optical storage media such as CD-ROMS and barcodes, and semiconductor memories such as flash memories, read-onlymemories (ROMS), and battery-backed volatile memories.

In a preferred embodiment, telecommunications system 20 includes a PCcompatible computer having '586 or '686 class based microprocessors,such as the Athlon™ microprocessor from AMD. Further, in the presentembodiment, telecommunications system 20 utilizes the WindowsNT™operating from Microsoft Corporation, and runs AltiWare™ IP andAltiWareOE software from AltiGen Communications, Inc. Telecommunicationsserver 70 are preferably embodied as a Triton DSP PCI based and at leastone Quantum telephony ISA based plug-in expansion boards from AltiGenCommunications, Inc. These boards are also coupled to a dedicated databus, such as the MVIP bus, or the like.

FIG. 2 is representative of but one type of system for embodying thepresent invention. It will be readily apparent to one of ordinary skillin the art that many system types of hardware and softwareconfigurations are suitable for use in conjunction with the presentinvention. For example, processor such as the G4 from Motorola,PentiumIII from Intel, and the like may be used, further any computercommunications bus may be used in alternative embodiments of the presentinvention. Further telecommunications system 20 may operate under theLINUX operating system, may operate under MAC OS from Apple Computer,BeOS from Be, Incorporated, and the like.

FIG. 3 is a more detailed block diagram of a portion of atelecommunications system according to an embodiment of the presentinvention. FIG. 3 illustrates processor 90, disk drive 110, andtelecommunications server 70. In the present embodiment,telecommunications server 70 includes a signal processor 200, a digitalto analog and analog to digital coder (CODEC) 210, and a memory 250.Telecommunications server 70 interfaces with telephone extension lines230, and in turn, telephone extension lines 230 are coupled to telephonehandsets 240. Processor 90 is coupled to a computer network 220, asdiscussed above.

In FIG. 3, processor 90 is used to control the operation oftelecommunications server 70 according to instructions from the AltiWaresoftware previously described. In one embodiment of the presentinvention, AltiWare software, operates in a multi-threaded multi-taskingenvironment, where each thread monitors the status of a particulartelephone extension line 230. The status of the particular telephoneextension line is typically represented as a state machine in thesoftware.

In the present embodiment, processor 90 is also used to convert incomingaudio messages to message files in a predefined storage format, and toconvert message files and voice prompt files from predefined storageformats to an output format (typically digital signals). In the presentembodiment, two specific storage format can be used for audio messagesincluding the well-known “wav” file format, and a pulse coded modulationscheme (PCM). The voice data is typically stored and played-back in astreaming manner.

In other embodiments of the present invention, a single storage formatmay be used. In other embodiments, other formats for storage of audiomessages and the like are known to those of ordinary skill in the artand can be used. For example, formats such as the “RealAudio” format,from Real Networks, Inc., Motion Picture Experts Group Payer 3, MP3,G.723.1 and the like may be also be used in embodiments of the presentinvention.

In the present embodiment, memory storage 110 is used to store audiomessages, such as voice messages, numeric telephone numbers, callerdatabases, voice prompt files, computer network addresses: for exampleIP addresses, domain names, available ports; embodiments of the presentinvention, e-mail addresses, data and the like.

In this embodiment, processor 90 is also used to maintain a list oftelephone numbers and a mapping of these telephone numbers. Inparticular, processor 90 maintains a list of physical telephoneextensions 230 and “virtual” telephone numbers, i.e. telephone numbersthat are accessed across computer network 220. As will be describedfurther below, when a telephone call is received, processor 90determines whether the telephone call is a physical telephone extensionor a virtual telephone number.

In the case the telephone call is for a physical telephone extension, inthis example, processor 90 connects the telephone call to theappropriate telephone extension 230. In the case the telephone call isfor a virtual telephone number, processor 90 initially determines aremote telecommunications system is associated with the virtualtelephone number. In another embodiment, signal processor 200 maintainsthe list of telephone numbers and performs the mapping. In still anotherembodiment, processor 90 and signal processor 200 work together tomaintain the list and perform the mapping.

In the present embodiment, processor 90 is also used to implementtelephone call switching functionality. For example, incoming telephonecalls may automatically routed to a computer process that may presentthe caller with a menu of options the caller may select from, and mayprocess the caller's selections. In the present embodiment, types ofswitching functions that may be provided include, call transferring,call forwarding, call waiting, and the like. In the present embodiment,the switching functions are programmable by the administrator of thetelecommunications system. Further, switching functions available may beprogrammable according to time of day, location of the caller, and thelike. Other programmable functions may also include setting time-outlimits and messages, setting call-back numbers, and the like.

As will be described below, packet portion 340 is used to handlepacketized communications between telecommunications system and a remotetelecommunication server. Similarly, as a remote telecommunicationssystem, packet portion 340 is then used to handle communications betweenit and telecommunications system.

Signal processor 200 is embodied as a Texas Instruments TMS320C5Xdigital signal processor (DSPs), and is coupled to receive instructions,data, and the like from processor 90. Of course DSPs from othermanufacturers may be used in other embodiments of the present invention.Memory 250 is used to store local instructions, voice recognitionalgorithms, data for signal processor 200, DTMF data, and the like.

In the present embodiment, signal processor 200 also provides telephoneswitching functionality to each telephone extension line. For example,in this embodiment, signal processor 200 is used to detect off-hookconditions, to provide tone generation, to detect and process key-pad(DTMF) tones generated from each telephone handset 240, to connectincoming telephone calls to appropriate extensions, and the like. Othertypes of switching are contemplated, such as handling incoming andoutgoing trunk calls, call transfers to and from IP trunks, callforwarding, message notification, reminder calls, multi-locationconferencing, call parking, call waiting, and the like. In someembodiments, signal processor 200 and/or processor 90 are both used tohandle automatic call distribution, system call-backs, calling out fromvoice mail, boomerang, dial last caller, speed dialing, call accounting,CallerID, voice mail, mixed media messaging, MS Exchange integration,client console support, and the like.

In one embodiment, signal processor 200 is also used to providemessaging functionality, such as an implementation of a voice mailserver. In particular, signal processor 200 outputs instructions, userprompts, messages from voice mail boxes, and the like, to the messaginguser. Further, signal processor 200 receives function selections in theform of DTMF tones, spoken instructions, spoken messages, and the likefrom the messaging user. As discussed above, memory storage 110 may beused to store data associated with the messaging functionality, such asvoice prompts, the incoming messages, outgoing messages, and the like.

In another embodiment, signal processor 200 is also used to convert or“recognize” particular incoming audio messages and translate themessages into a computer recognizable form. For example, signalprocessor 200 can recognize the spoken words “three, two, one” as thenumeric number “3,2,1”, e.g. ASCII character equivalents. As anotherexample, signal processor 200 can recognize the spoken word “yes” or“ok” as an affirmative response, and “no” as a negative response. Insome embodiments, signal processor 200 can use any conventional voicerecognition algorithms. In embodiments destined for non-English speakingcountries, voice recognition algorithms specific to the native languagesmay be used.

In an alternative embodiment of the present invention, processor 90 maybe used to perform the voice recognition process instead of signalprocessor 200. In still another embodiment, the voice recognitionprocess may be split between processor 90 and signal processor 200.

Signal processor 200 typically comprises a multi-process environmentwherein each process monitors the off-hook and in some embodiments themessaging the status of a particular telephone extension line 230. Thestatus of the particular telephone extension line in off-hook mode isrepresented as a state machine within signal processor 200. Further, thestatus of the particular telephone extension line within a voice mailmessaging mode is represented as another state machine within signalprocessor 200. In one embodiment of the present invention, signalprocessor 200 can process up to twelve telephone extension lines beingsimultaneously in off-hook mode or in voice mail messaging mode. Inalternative embodiments, monitoring of states of a greater or fewernumber of telephone extension lines 230 is contemplated.

As is illustrated in FIG. 3, CODEC 210 is used to provide an interfacebetween users on telephone extension lines 230 and signal processor 200.In the present embodiment, CODEC 210 digitizes analog messages andanalog signals from users on telephone extension lines 230. CODEC 210also converts digital signals from signal processor 200, processor 90,and the like, into analog signals for users on telephone extension lines230. In the present embodiment, the analog signals include audiomessages to and from users, dial tone and multifreqency (DTMF) tones,and the like. The analog signals also include voice prompts or phrasesthat provide voice prompting capability to users on telephone extensionlines 230, messages recorded by users, and the like. Examples of voiceprompts or phrases, include messages that instruct the user which keyson a telephone to select to perform particular functions, messages thattell the user how many messages are pending, requests for instructions,requests user input, and the like.

FIG. 3 also illustrates an interface 350 between signal processor 200and packet portion 340. In this example, interface 350 includesinterface logic 360 and 370, and physical/logical interface 365. In thepresent embodiment, physical/logical interface 365 follows the MVIP-90compatible protocol, and interface logic 360 and 370 provides theappropriate signaling. In alternative embodiments of the presentinvention, alternative interfaces, such as specified by Dialogic, andthe like may also be used.

In the present embodiment, packet portion 340 includes signal processor380 and an input buffer 300 and an output buffer 320. Locations whereinput buffer 300 are written to are specified by a write pointer 260,and locations where input buffer 300 are read from are specified by aread pointer 270. Further, locations where output buffer 320 are writtento are specified by a write pointer 280, and locations where outputbuffer 320 are read from are specified by a read pointer 290.

Signal processor 380 provides write pointer 260, read pointer 270, writepointer 280, and read pointer 290, to input buffer 300 and output buffer320, respectively. Further, signal processor 200 stores and retrievesdata from these buffers, in response to the pointer, as will bedescribed further below. In the present embodiment, input buffer 300 istypically a 80 byte wide×20 deep buffer, and output buffer 320 istypically a 40 byte wide×80 deep buffer. These buffers may be embodiedas one or more dynamic random access memories (DRAM). The buffers aretypically circular, so that locations can be reused. In alternativeembodiments, different sized memories can also be used.

Signal processor 380 is typically a multi-process environment.Accordingly, in the present embodiment, eight network based telephonecalls can be performed at the same time. To implement this capability,input buffer 300 and output buffer 320 are typically segmented, suchthat each network based telephone call supported, have use of a reservedportion of the respective buffers. For example, a first telephone callis allocated use of input buffer locations 0-1023, a second telephonecall is allocated use of input buffer locations 1024-2023, and the like.Further, for each network based telephone call, separate read and writepointers for each buffer may be allocated and maintained. For example,an input buffer write pointer associated with the first call may pointto location 1000, whereas an input buffer write pointer associated witha second call may point to location 2000, and the like.

In this embodiment, processor 90 is also used to send and receivepackets of data across network 220. This embodiment includes two typesof packets, packets that include control and status data, and packetsthat include voice data. Typically, the control data, is used to helpset up communications between a server and a client. In this example,the control data may include the network call-back address of thecaller.

In the present embodiment processor, 90 utilizes the Internet Protocol(IP) for enhancing packet transmission reliability over a packetizednetwork. In a packet sending mode, processor 90 receives packets of TCPdata from packet portion 340, and then divides the TCP packets intoshorter packets of data. In the present embodiment, signal processor 380provides the TCP packetizing of switching data and voice data. In thisembodiment, processor 90 uses IP to format the TCP packets into TCP/IPpackets and then sends the TCP/IP packets across network 220. Accordingto TCP/IP protocol, processor 90 also monitors network 220 for ACKsignals from the receiving telecommunications system. In alternativeembodiments, processor 90 performs the TCP packetizing in addition to IPpacketizing. In such embodiments, packet portion 340 delivers streams ofdigital data (such as switching data and voice data) to processor 90.

Processor 90 also receives TCP packets from packet sendingtelecommunications systems, and in response sends ACK signals back tothe other systems. In the present embodiment, processor 90 strips IPheaders from the packets and then forwards the received TCP packets totelecommunications server 70. More specifically, the TCP packets aresent to packet portion 340 for processing. In the present embodiment,processor 90 may utilize other network protocols in addition to orinstead of IP, for example, UDP or the like. In the present embodiment,signal processor 380 receives the TCP packets and reassembles them intothe right order. The switching and voice data recovered are then sent tosignal processor 200 for further processing.

Signal processor 380 is embodied as a Texas Instruments TMS320C6201digital signal processor (DSPs), and is coupled to receive instructions,data, and the like from processor 90, and/or signal processor 200. Ofcourse DSPs from other manufacturers may be used in other embodiments ofthe present invention. In the present embodiment, memory 390 is used tostore local instructions, data for signal processor 380, intermediatedata, embodiments of the invention, and the like.

FIGS. 4A-4C illustrate flowcharts of an embodiment of the presentinvention.

FIG. 4A illustrates a flowchart of an embodiment of a caller'stelecommunications system sending data to a receiver's telecommunicationsystem via a computer network. In FIG. 4A, initially a caller dials anumber on their telephone, step 1300. In the present embodiment, dialingis typically by way of the caller pressing a series of DTMF keys on hertelephone representing a particular telephone number. Alternatively, thecaller may press a series of keys providing speed dial-type capability,speak a name, a series of numbers, and the like. In another embodiment,dialing may occur by the caller selecting a name, a telephone number,and the like from a list on a computer display associated with thecaller.

In response to the “dialed” number, within the caller's system, signalprocessor 200 or processor 90, determines that the telephone call shouldbe completed across the computer network, step 1310. In one embodiment,particular telephone calls are always made across the computer network.In alternative embodiments, the decision may be made depending upon timeof day, long distance rates, computer network performance, and the like.

Next, the computer network address of the telecommunications systemassociated with the dialed number is determined, step 1320. In thepresent embodiment, processor 90 receives the telephone number fromsignal processor 200. In particular, the computer network addresspre-associated with the telephone number is typically stored in memorystorage 110 and retrieved by processor 90. In the present embodiment,the network address is an IP address. In alternative embodiments, thenetwork address may be any number, characters, or words that representsa path to the receiving telecommunications system, for example, a domainname, a uniform resource locator (URL), or the like.

The data to be transmitted to the computer associated with the networkaddress is then determined, step 1325. One type of data is termed callset-up data. The call set-up data may include a telephone number, aconnection request, a computer network address, voice data, calleridentifying data such as the caller telephone number, caller computernetwork address, and the like, DTMF tones, and the like. Another type ofdata may include voice data.

Processor 90 next generates groups or frames of data packets, step 1330.In the present embodiment, these data packets are encoded using TCP.When each TCP packet is formed, processor 90 typically prepends a timestamp (original time stamp or OTS) indicating when the TCP packet wasformed by processor 90. Typically, each TCP packet represents 10milliseconds worth of data in the present embodiment. In the presentembodiment, IP headers are typically added to each TCP packet, step1335.

Next, the TCP/IP packets that are formed are then sent across thecomputer network to the IP address specified, step 1340. If no more datapackets are to be transmitted, step 1345, the call is terminated, step1350. Termination typically includes hanging up the telephone, orotherwise terminating the transfer of data.

The more significant steps for the above packet transfer process havebeen described. However it should be understood that may steps, known toone of ordinary skill in the art have not been described, merely forsake of compactness in disclosure. For example, the intricacies of TCPacknowledgments (ACK), and the like are not described. Such steps may ormay not be required when implementing alternative embodiments of thepresent invention.

FIG. 4B illustrates a flowchart of an embodiment of a receiver'stelecommunications system receiving data from a sender'stelecommunication system via a computer network. In FIG. 4B, the TCP/IPpackets are received by the receiving telecommunications system acrossthe network, step 1360. The IP headers are then stripped, step 1370, andthe individual of TCP packets are then obtained step 1380. The IPheaders may be stored in a memory, such as memory 250, in embodiments ofthe present invention, step 1390. In one embodiment of the presentinvention, the IP headers indicate the network address of the caller'stelecommunications system.

Next, the TCP packets are re-ordered and re-assembled, step 1395. Thistechnique may be implemented by the techniques disclosed in co-pendingapplication serial No. 60/139,342, filed Jun. 15, 1999, entitled SessionTime Stamp Method and Apparatus, described above.

FIG. 4C illustrates a flowchart of an embodiment of the receivingtelecommunications system returning data to the caller's system via acomputer network. In FIG. 4C, the computer network address of thecaller, termed computer network callback data, network call-back data,call-back data, or the like, is determined, step 400. In the presentembodiment, this data comprises the IP headers stored in memory 250 instep 1390, above, and/or caller identifiable data determined in step510, below, or the like. In alternative embodiments, the computernetwork call-back data is pre-registered in the receiver's system, and asimple caller identification indicator is transmitted from the caller'ssystem.

Return data to be transmitted to the caller is then determined, step410. As will be described below, the return data may include a telephonenumber, voice data, caller identifying data, voice prompts, data from avoice mail server, and the like.

Similar to the caller's system, processor 90 of the receiver's systemnext generates groups or frames of data packets, step 420, typicallyfollowing TCP protocols. In the present embodiment, IP headers are alsotypically added to each TCP packet, step 430. Next, the TCP/IP packetsthat are formed are then sent across the computer network to thecaller's system, step 440. The caller's system receives the TCP/IPpackets in a process similar to the method described in FIG. 4B, above.

FIGS. 5A-5C illustrate flowcharts of an embodiment of a receiver'stelecommunications system processing data from a caller'stelecommunication system.

Initially, the data stored and received within the TCP packets arerecovered and stored. More specifically, the TCP packets typicallyincludes an indication of the party being called, step 500. For example,the data can include the receiver's full telephone number, an extensionnumber, a receiver user name, or the like. Further, the recovered datamay include data indicating the identification of the caller or calleridentifiable data, step 510. For example, the caller identifiable datamay include the telephone number of the caller, the caller name or username, a caller extension number, the caller's computer network address,and the like.

In response to the data regarding the party being called, signalprocessor 200 or processor 90 determines the appropriate telephoneextension to ring, step 520. For example, in one embodiment where thedata is a user name, signal processor 200 or processor 90 determines theappropriate telephone extension based upon the user name. Such dataassociations may be stored within memory storage 110 and/or memory 250.In other embodiments, the data may be user initials; a particularbusiness group, for example, sales, customer service, information, orthe like. In such embodiments, the appropriate telephone extensions maybe pre-associated with such data.

In response to the incoming telephone call, signal processor 200 sendsringing signals to the particular telephone extension, step 530. If theparticular telephone extension is answered, step 540, the incomingtelephone call is connected to the particular extension, step 550.Subsequently, data transmitted from the caller's system is then receivedby the particular extension, step 560. In the present embodiment, thereceived data is typically analog data, such as voice data, fax data,analog modem signals, and the like. Alternatively, in other embodimentsthe data may be digital data, multi-level digital data, or the like.

In the present embodiment, if the particular telephone extension is notanswered within a predetermined amount of time, step 570, the incomingcall is typically transferred to a messaging state machine (a voice mailserver), step 580. In the present embodiment, the voice mail may betreated as a typical internal telephone extension line and rings atleast once before the incoming call is answered. As disclosed above, inone embodiment, signal processor 200 provides the voice messagingfunctionality such as voice mail.

Initially, the voice mail system outputs instructions to the caller andtypically prompts to the caller for instructions, step 590. Instructionsto the caller typically include how to leave a message, how to transferto an operator, how to bypass the instructions menu, and the like.Typically, voice prompt files, and the like are retrieved from memorystorage 110 and transmitted to the caller's system, as described in FIG.4C, above. These voice prompt files are then played to the callerthrough the caller's telecommunications server.

If the caller inputs instructions, step 600, the instructions areprocessed by signal processor 200 within the context of the voice mailsystem, step 610. In the present embodiment, instructions take the formof DTMF tones in response to the caller pressing buttons on a numerickeypad. In alternative embodiments, other forms of caller input mayinclude spoken instructions, and the like.

In the present embodiment, if no instructions are received from thecaller, the caller is typically prompted to leave a voice mail message,step 620.

Next, telecommunications module 70 then reconstructs the voice mailmessage from data stored within TCP packets, step 630. In otherembodiments of the present invention, the message need not be a voicemessage, and may represent an analog or digital transmission such as afacsimile, file transfer, and the like.

In the present embodiment, the voice mail message may be compressed onthe caller side, prior to transmitting it across the computer network.Compression schemes may include a pulse coded modulation, an MP3 format,a streaming format, and the like. In alternative embodiments other typesof compression schemes may be used to advantageously reduce the amountof data transmitted. In the present embodiment, the data may be directlystored into memory 110 of the receiver's system with or without furtherconversion or compression, step 640.

Typically, telecommunications module 70 stops recording whentelecommunications module 70 determines that the caller has hung up orwhen the caller presses a particular telephone keypad key orcombinations of keys, step 650. In the present embodiment, if the callerhas not terminated the call, the caller can review the message beforesending the message, step 660. The caller may then re-record the messageor accept the message, step 670.

After the message is accepted, the message becomes associated with thecomputer network call-back data, step 680. Next, the computer networkcall-back data and the message are stored in the appropriate voicemailbox associated with the called telephone, step 685. The computernetwork call-back data typically includes the caller identifiable datadetermined in step 510, the IP address determined in step 1390, and thelike. In alternative embodiments, the network call-back data may includea uniform resource locator (URL) of the caller's system, or any othercomputer network identifier that identifies the network address of thecaller's system. In embodiments of the present invention, calleridentifiable data may include the caller's name, a caller path, atelephone number or extension, a business group, or the like. Ingeneral, these data are referred to as call-back data.

In an alternative embodiment of the present invention, the call-backdata merely indicates where the call is initiated from, but notnecessarily identify the number where the caller can be reached. In suchembodiments, the caller may also be prompted for a specific return calldata, step 690. In response, the caller may enter her return callnumber, step 700. The call back number may be entered by the callerhitting a series of DTMF tones, or the caller speaking a return callnumber, as described in co-pending U.S. patent application Ser. No.09/255,358, filed Feb. 23, 1999, entitled Call-back Number Voice CaptureMethod and Apparatus. That patent application is herein by incorporatedby reference for all purposes.

In the present embodiment, if the return call number has been capturedcorrectly, step 720, it is associated with the message, step 730. Thereturn-call number is also stored in the voice mailbox associated withthe called telephone number, step 740.

In the present embodiments, when the “owner” of the voice mailbox wherea message from a computer network is left, subsequently calls themessaging system, the message can be played back to the owner in aconventional manner. If call-back data or a return call number has beenassociated with the message, the messaging system may prompt the owneras whether to make a telephone call according to the call-back data, thereturn call number, or the like. In the present embodiment, when theowner indicates she wants to return the call, that data is then used tomake the call. By providing such call-back data, the owner need notwrite down the call-back data need not enter the call-back data into thecomputer manually.

In alternative embodiments of the present invention, the process ofleaving a message and leaving the return call number may be reversed.For example, before leaving a message, the caller may be prompted toleave a call-back number.

In another embodiment of the present innovation, the technique mayinclude the following steps for a calling telecommunications system:

1. Initially a caller at a first telecommunications system dials atelephone number to reach a person.

2. The first telecommunications system determines the computer networkaddress of the person in response to the dialed telephone number.

3. The first telecommunication system constructs call set-up packets andincludes a call-back number for the caller in a destination field of thepackets.

4. The call setup packets are encapsulated with network header data thatincludes its own network address.

5. The encapsulated packets are sent to a second telecommunicationssystem.

6. The call is then connected to a voice mail server on the secondtelecommunications system wherein the call-back number of the caller isstored.

The technique may include the following steps for a receivingtelecommunications system:

1. The second telecommunications system receives the call setup packetsfrom the first telecommunications system.

2. The source network address of the first telecommunications system isstored.

3. The network headers are stripped.

4. The call back data is determined and stored.

5. The call is connected to the voice mail and is cross-referenced tothe call back data.

The technique may also include the following steps for a receivingtelecommunications system:

1. The person being called retrieves her voice mail.

2. The person request to initiate a telephone call to the caller.

3. The second telecommunications system retrieves the call back dataassociated with the caller.

3. The first telecommunication system constructs call set-up packets andincludes a call-back number for the caller in a destination field of thepackets.

4. The call setup packets are encapsulated with network header data thatincludes its own network address.

5. The encapsulated packets are sent to the first telecommunicationssystem to request a telephone call.

Conclusion

In the foregoing specification, the invention has been described withreference to specific exemplary embodiments thereof. Many changes ormodifications are readily envisioned. Many changes or modifications arereadily envisioned. For example, the network utilized may include theInternet, an internal IP based network, an IPX network, and the like. Inalternative embodiments, different types of computer network identifiersare contemplated including IP addresses, URLs, domain name server (DNS)address, and the like. Further, different types of caller identifiersare contemplated including user name, caller extension, geographiclocation, caller priority, and the like.

Other embodiments of the present invention may include combinations,sub-combinations, and or additions to the above disclosed embodiment. Asan example, many different voice recognition techniques can be used forrecognizing a spoken callback number prior to storage. Further differentvoice recognition techniques can be applied for different spokenlanguages.

In another embodiment, the caller may be an IP telephone. In such anembodiment, after a call is initiated by the IP telephone, telephoneserver 70 receives call set-up data in the form of set-up IP packetsacross a computer network from the IP telephone. In the presentembodiment, the set-up IP packets may include the network call backdata.

In the present embodiment, the call back data may include computernetwork and/or addresses telephone numbers of the telecommunicationssystem for call setup. Further the call back data may include thenetwork address for the voice data stream. In this embodiment, thenetwork address may include any combination of IP address, sockets,e-mail address, DNS name, and so on.

The block diagrams of the architecture and flow charts are grouped forease of understanding. However, it should be understood thatcombinations of blocks, additions of new blocks, re-arrangement ofblocks, and the like are contemplated in alternative embodiments of thepresent invention.

The specification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense. It will, however, beevident that various modifications and changes may be made thereuntowithout departing from the broader spirit and scope of the invention asset forth in the claims.

What is claimed is:
 1. A method for operating a telecommunicationssystem comprises: receiving over a computer network, a plurality of datapackets from a first telecommunications system, in a secondtelecommunications system; determining a telephone number in response toa first set data packets from the plurality of data packets; determiningcomputer network call-back data in response to a second set of datapackets from the plurality of data packets; determining message data inresponse to a third set of data packets from the plurality of datapackets; and storing the message data and the computer network call-backdata in the second telecommunications system, the message data and thecomputer network call-back data associated with the telephone number. 2.The method of claim 1 wherein the message data comprises voice data. 3.The method of claim 1 wherein the telephone number is associated with atelephone extension coupled to the second telecommunications system. 4.The method of claim 1 wherein the plurality of data packets comprise IPpackets.
 5. The method of claim 4 wherein the computer network call-backdata one of an IP address, a URL, and a domain name.
 6. The method ofclaim 1 wherein the message includes the computer network call-backdata.
 7. The method of claim 1 wherein storing the message data and thecomputer network call-back data comprises storing the message data andthe computer network call-back data in a voice mail server.
 8. Acomputer program product for operating a telecommunications serverincluding a processor comprises: code that directs the processor tostore a plurality of data packets from a remote telecommunicationsserver, over a computer network, in a memory; code that directs theprocessor to determine a telephone number in response to a first setdata packets from the plurality of data packets; code that directs theprocessor to determine network call-back data in response to a secondset of data packets from the plurality of data packets; and code thatdirects the processor to store the network call-back data, the networkcall-back data associated with the telephone number; wherein the codesreside on a tangible media.
 9. The computer program product of claim 8further comprising: code that directs the processor to determine messagedata in response to a third set of data packets from the plurality ofdata packets; and code that directs the processor to store the messagedata, the message data associated with the telephone number.
 10. Thecomputer program product of claim 9 wherein the message data representsvoice data.
 11. The computer program product of claim 8 wherein thetelephone number is associated with a telephone coupled to thetelecommunications server.
 12. The computer program product of claim 8wherein the plurality of data packets comprise TCP packets.
 13. Thecomputer program product of claim 8 wherein the network call-back datacomprises one of an IP address, a URL, and a domain name.
 14. Atelecommunications system comprises: a processor; and a processorreadable memory coupled to the processor, the processor readable memorycomprising: code that directs the processor to store a plurality of datapackets from another telecommunications system, in a memory; code thatdirects the processor to determine a destination identifier in responseto a first set data packets from the plurality of data packets; codethat directs the processor to determine call-back data in response to asecond set of data packets from the plurality of data packets; code thatdirects the processor to associate the call-back data associated withthe destination identifier; and code that directs the processor to storethe call-back data.
 15. The telecommunications system of claim 14further comprising: code that directs the processor to determine messagedata in response to a third set of data packets from the plurality ofdata packets; and code that directs the processor to associate themessage data associated with the call-back data.
 16. Thetelecommunications system of claim 15 wherein the message data comprisesvoice data.
 17. The telecommunications system of claim 14 wherein thedestination identifier is associated with a telephone associated withthe telecommunications system.
 18. The telecommunications system ofclaim 14 wherein the destination identifier comprises one of a telephonenumber, a telephone extension, and a user name.
 19. Thetelecommunications system of claim 14 wherein the plurality of datapackets comprise TCP packets.
 20. The telecommunications system of claim14 wherein the call-back data comprises one of an IP address, a URL, adomain name, and a telephone number.